#include "VRRWidget.h"

VRRWidget::VRRWidget(void) :
    VWidget(),
    _resx(0), _resy(0), _resw(0), _resh(0)
{
}

VRRWidget::VRRWidget(int x, int y, int w, int h) :
    VWidget(x, y , w, h)
{

}

VRRWidget::VRRWidget(int x, int y, int w, int h, int resx, int resy, int resw, int resh) :
    VWidget()
{
    VWidget::setGeometry(x, y, w, h);
    setResponseGeometry(resx, resy, resw, resh);
}

VRRWidget::~VRRWidget(void)
{
}

bool VRRWidget::inArea(int x, int y) const
{
    if ((x > _resx) &&
            (y > _resy) &&
            (x < _resx + _resw) &&
            (y < _resy + _resh))
    {
        return true;
    }

    return false;
}

void VRRWidget::setGeometry(int x, int y, int w, int h)
{
    VWidget::setGeometry(x, y, w, h);
    setResponseGeometry(x, y, w, h);
}

void VRRWidget::setResponseGeometry(int x, int y, int w, int h)
{
    resMove(x, y);
    resResize(w, h);
}

void VRRWidget::responseGeometry(int* x, int* y, int* w, int* h) const
{
    *x = _resx;
    *y = _resy;
    *w = _resw;
    *h = _resh;
}

int& VRRWidget::responseX()
{
    return _resx;
}

int& VRRWidget::responseY()
{
    return _resy;
}

int& VRRWidget::responseWidth()
{
    return _resw;
}

int& VRRWidget::responseHeight()
{
    return _resh;
}

void VRRWidget::resMove(int x, int y)
{
    _resx = x;
    _resy = y;
}

void VRRWidget::resResize(int w, int h)
{
    _resw = w;
    _resh = h;
}

void VRRWidget::move(int x, int y)
{
    VWidget::move(x, y);
    resMove(x, y);
}

void VRRWidget::resize(int w, int h)
{
    VWidget::resize(w, h);
    resResize(w, h);
}